1. Technical Field
The present invention relates in general to mapping a group of disk drives in a storage subsystem of a data processing system and in particular to the striping of data segments across individual drives. Still more particularly, the present invention relates to the method of striping data segments when a new drive is added to the drive group.
2. Description of the Related Art
Data processing systems store critical programs and data on magnetic disk drives for use during data processing. Often, the magnetic disk drives are large and only one drive is attached to the data processing system. Multiple disk drives are used to provide a more reliable and flexible data storage subsystem. In systems that require reliable access to the disk drives, the primary purposes for using multiple disk drives are for redundancy and to back up the primary storage drives. Storage subsystems with multiple drives can be a group of disk drives with no particular arrangement, or a configuration, with a specific controller, known as a disk array.
A disk array, which may also be referred to as a Redundant Array of Independent Drives ("RAID") device, and is used with a data processing system to increase data availability, increase storage capacity, provide performance flexibility and increase data protection. A data processing system's storage capacity is increased by installing multiple smaller form factor drives on a data processing system. A special memory subsystem controller is used that allows all the drives to appear as one drive to the data processing system.
Performance of the memory transactions may be enhanced by spreading segments of data over the multiple drives and then allowing multiple drives to work on a single request at the same time. However, as the number of drives on a system increases, the likelihood of a drive failing increases. So, copying data to multiple locations increases safety of the data. Also, disk mirroring (copying an exact copy of one disk onto another) and various encoding schemes may be used to reduce the required redundancy.
RAID drive groups that have the data segments written in "stripes" (a continuous segment of data written to multiple drives), improve performance by mapping what the system believes are contiguous data segments across several physical drives. Data Striping is a physical mapping of data that is supported by most RAID classes (RAID 0, 1, 5 and 6). For example, in a five drive RAID device, when a system requests four contiguous data segments from a drive-group that supports data striping, the four data segments may actually be written to four different physical drives. The data, resident on four different drives, may be retrieved in a parallel operation which increases access and speed between the data processing system and the RAID device.
The problem with data striping is that since striping is a physical mapping of the data segments, adding a new drive to the drive group is fairly complex. Each data segment already present on the old drives must be remapped to a new position. For example, if a new drive is added to a five drive drive-group, then data segment 6, which exists on the first drive in the drive group hierarchy, must be copied to the first stripe on the new drive. Data segment 7, which exists on the second drive, must then be copied to the second segment on the first drive. This continues until all of the segments on all of the drives have been remapped to new positions.
If the drives are 4 gigabyte drives with 256K sized data segments, then the controller managing the drive group must issue over 142,000 commands to expand the 5 drive drive-group by one drive. During this time, the processor will be consumed with handling every read and write operation, and I/O throughput will essentially halt.
It would be desirable, therefore, to provide a method for reducing the number of transactions between the controller and the connected RAID device.
It would also be desirable, to provide a method that will the reduce the time required to install a new drive to a RAID subsystem.
It would be desirable further, to provide a method that will transfer the new drive installation functions to the RAID subsystem.